package com.sugon.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 设备维修第三方回调数据实体
 * 表名 DEV_MAINTEN_THIRDPARTY_CB
 *
 * @author YuXD
 * @date 2022-07-30
 */
@Data
public class DevMaintenThirdpartyCbEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 回调内容
     */
    private String content;
    /**
     * 业务ID，一般为第三方平台中的业务ID
     */
    private String busId;

    /**
     * 业务ID，一般ERMS中设备维修或者模具维修工单/记录ID
     */
    private String ermsBusId;

    /**
     * 创建时间
     */
    private Date gmtCreate;

    /**
     * 维修人员
     */
    private String repairUser;

    /**
     * 解决办法
     */
    private String solution;

    /**
     * 原因分析
     */
    private String reason;

    /**
     * 故障代码或报警代码
     * 设备取值自：ALARM_CODE_BASE
     * 模具取值自：FAULT_TYPE
     */
    private String faultCode;

    /**
     * 故障描述或报警代码
     */
    private String faultDesc;

    /**
     * 结束维修时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endRepairTime;

    /**
     * 开始维修时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startRepairTime;

    /**
     * 报修时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date uploadTime;

    /**
     * 报修人
     */
    private String uploader;

    /**
     * 设备码
     */
    private String machineCode;

    /**
     * 产线码
     */
    private String lineCode;

    /**
     * 主键
     */
    private String id;

    /**
     * 设备ID
     */
    private String devId;

    /**
     * 设备分类：指的是设备小类
     * 可能用于生成设备报警记录
     */
    private String deviceType;

    /**
     * 维修阶段
     */
    private Integer repairStage;

    /**
     * 是否有效：主要为了筛选是否是同一个阶段的重复数据
     * <p>
     * 1：有效 0：无效
     */
    private Integer isValid;

    /**
     * 维修分类，取值自RepairCategory
     * DEVICE: 设备维修
     * MOLD: 模具维修
     */
    private String category;

    /**
     * 操作类型：取值自DataAction
     * ADD：新增
     * UPDATE: 修改
     * DELETE：删除
     */
    private String action;

}
